DSpeech v1.52 (by Dimio)
~~~~~~~~~~~~~~~~~~~~~~~~~

La versione aggiornata si trova al seguente Link:

Home: "http://dimio.altervista.org/"



DESCRIZIONE:
~~~~~~~~~~~~

DSpeech è un programma di TTS (Text To Speech) con funzionalità di ASR (Automatic Speech Recognition) integrate. E' cioè in grado di leggere ad alta voce il testo scritto e di scegliere le frasi da pronunciare a seconda delle risposte vocali dell'utente. E' progettato specificamente per fornire in maniera rapida e diretta le funzioni di maggiore utilità pratica che si richiedono ai programmi di questo tipo, mantenendo al contempo al minimo l'invasività e il consumo di risorse (non si installa, non si integra nel sistema, è leggerissimo, si avvia in un attimo e non scrive niente nel registro).

Le principali caratteristiche di DSpeech sono:

- Permette di salvare l'output sotto forma di un file Wav o Mp3.
- Permette di selezionare rapidamente voci diverse e combinarle tra loro per creare dialoghi fra più voci.
- Integra un sistema di RICONOSCIMENTO VOCALE che, oltre a poter essere utilizzato come tale, tramite un semplice linguaggio di script, consente di creare dialoghi interattivi con l'utente.
- Permette di configurare le voci in maniera indipendente.
- Tramite appositi TAG, consente di variare dinamicamente le caratteristiche delle voci durante la riproduzione (velocità, volume e frequenza), inserire pause, enfatizzare termini o fare lo spelling.
- Permette di catturare e riprodurre automaticamente il contenuto del ClipBoard.
- Supporta tutti gli engine vocali compatibili con SAPI 4 e 5.
- Consente di registrare dal microfono ed inserire il risultato all'interno del dialogo in modo tale da creare un mix di voci reali e sintetiche.
- Supporta delle personalità virtuali (di default c'è solo Selena in italiano) che consentono al computer di rispondere con delle risposte sensate (più o meno) alle domande dell'utente.

Integra inoltre una serie di caratteristiche secondarie, tra cui:

- All'avvio, consente di auto-caricare l'ultimo file aperto, con relativa posizione di lettura.
- Supporta la linea di comando e può quindi essere utilizzato, senza interfaccia grafica, per la creazione di audio-libri.
- Consente di specificare il formato dell'output audio, questo può venir utile in situazioni molto particolari, quando c'è la necessità di operare con dei file wav di caratteristiche definite.
- Permette di creare dei montaggi inserendo, tramite un'apposita KeyWord, dei files wav o mp3. Questo può essere utile per introdurre, durante la lettura, degli effetti particolari, come un colpo di tosse, una risata, o anche degli stacchi musicali.
- Quando si salvano gli mp3, è possibile specificare la qualità degli stessi, in maniera da privilegiare la dimensioni o la qualità del risultato.
- E' ora possibile convertire del testo in mp3 o wav suddividendolo in file da 5, 10, 20 o 30 minuti ciascuno.
- Nel file "CustomTAG.TXT", è ora possibile inserire dei TAG personalizzati che compariranno poi nel menu contestuale (ad esempio i tag espressivi di Loquendo).
- A scelta, tramite un'apposita opzione, è possibile attivare l'integrazione di DSpeech con il menu contestuale di Windows.
- Tramite appositi file ".lng" è possibile traslare l'interfaccia in altre lingue.

Sebbene DSpeech supporti nativamente anche le voci SAPI4, esprime il meglio delle sue potenzialità con le voci SAPI5 (alcune opzioni avanzate sono disponibili solo se si utilizzano queste ultime).



CREAZIONE DEI DIALOGHI:
~~~~~~~~~~~~~~~~~~~~~~~

- Tramite il menu contestuale (Right Click) è possibile specificare con quale voce deve essere pronunciata una data frase, questo rende possibile la creazione di dialoghi tra voci diverse.



UTILIZZO DEI TAG:
~~~~~~~~~~~~~~~~~

- E' possibile inserire appositi TAG che consentono di modificare le caratteristiche della voce mentre sta parlando (velocità, volume, frequenza etc).
- Sempre tramite i TAG è possibile ottenere effetti particolari, come l'enfatizzazione di un termine, lo spelling di una o più parole e l'inserimento di pause.
- In tutti i casi, i TAG hanno validità unicamente all'interno della stessa linea.



OPZIONI DI RIPRODUZIONE:
~~~~~~~~~~~~~~~~~~~~~~~~

- Dall'interfaccia è possibile scegliere la voce da utilizzare ed è anche possibile, tramite una voce di menu, specificare una voce secondaria che verrà utilizzata per leggere il testo contenuto tra virgolette. Di essa si possono specificare una velocità ed un pitch diversi rispetto ai valori usati correntemente.
- E' altresì possibile specificare il formato audio che verrà utilizzato. Ovviamente se si userà un formato sbagliato, il suono risulterà alterato (il tipico "Effetto Lattina").
- Chi disponesse di più schede audio, dall'apposita casella, può scegliere quale utilizzare.
- Se si spunta la casella "Tracking", man mano che il testo viene pronunciato, viene anche evidenziato a video.
- E' anche possibile far sì che DSpeech pronunci la linea appena scritta ogni volta che si preme INVIO.
- Tramite una voce di menu è possibile scegliere di personalizzare la velocità, il volume e il pitch di ogni voce in modo separato. In questo modo è possibile ottenere la massima personalizzazione nella creazione di dialoghi.
- Un'altra opzione è quella che consente di convertire in wav o mp3 a volume sempre massimo; questa opzione, per ovvie ragioni, è incompatibile con la precedente (se selezionata, disattiva la precedente e viceversa).



OPZIONI AVANZATE:
~~~~~~~~~~~~~~~~~

- Tramite il menu contestuale, è possibile inserire una serie di KeyWord che consentono di eseguire delle azioni particolari.
In particolare:
1. Avviare un programma esterno o aprire un file.
2. Iniziare la riproduzione di un dato file di testo.
3. Inserire un file wav o mp3 all'interno del dialogo che si sta creando (questo può servire per creare dialoghi con effetti sonori).
4. Fare una pausa di tot secondi.
5. Chiudere DSpeech.
6. Sono anche disponibili delle istruzioni per il controllo di flusso, ma qui si rimanda alla sezione "SISTEMA DI SCRIPT E RICONOSCIMENTO VOCALE".

- Tramite una voce di menu è possibile impostare la priorità di DSpeech a "Idle" in maniera che funzioni in totale background senza occupare la CPU destinata ad altri processi. Questa opzione è utile soprattutto quando si creano audiolibri visto che il processo di conversione può impegnare il PC anche per diverse ore.



RIPRODUZIONE DEL TESTO:
~~~~~~~~~~~~~~~~~~~~~~~

- Tramite gli appositi pulsanti o i tasti di scelta rapida, è possibile iniziare e sospendere o riprendere la riproduzione esattamente nel punto in cui si vuole.



REGISTRAZIONE DAL MICROFONO:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- DSpeech consente di registrare una o più frasi al microfono, salvarla sotto forma di file wav ed inserirla nel testo sotto forma di TAG. Questo consente di creare dei mix tra voci reali e sintetiche.
La registrazione può essere attivata premendo l'apposito pulsante, se lo si preme una seconda volta la registrazione termina.
E' quindi possibile riascoltare la registrazione stessa e, se ritenuta idonea, salvarla sotto forma di file ed inserirla automaticamente nel testo sotto forma di TAG.



OPZIONI DI ACCESSIBILITà:
~~~~~~~~~~~~~~~~~~~~~~~~~

- DAll'omonima voce di menu è possibile scegliere il "Verbose Mode". In queso modo DSpeech pronuncerà ad alta voce i valori del volume, velocità e pitch ogni volta che essi vengono selezionati tramite tastiera.
- Mentre si fanno le prove col sistema di script può essere comodo attivare la funzione del tasto TAB, in modo che, alla sua pressione corrisponda una tabulazione invece che lo switch del fuoco tra i vari controlli. Ciò può essere fatto con una apposita voce del menu di accessibilità.
- E' anche possibile integrare DSpeech con il menu contestuale di EXplorer, in modo tale da poter avviare, ad esempio, la conversione di un file testuale in mp3 senza dover passare per l'interfaccia di DSpeech.



OPZIONI AUDIO:
~~~~~~~~~~~~~~

- E' possibile specificare la scheda audio in cui reindirizzare l'output e, soprattutto, il bitrate delle voci che si stanno utilizzando. Bisogna sempre cercare di utilizzare lo stesso bitrate dalle voci in uso, in caso contrario, si possono avere perdite di qualità o l'effetto lattina (come se la voce parlasse in una lattina).
- In generale, il settaggio utilizzato dalla maggior parte delle voci SAPI5 è: "16 Khz 16 Bit Mono" o "22 Khz 16 Bit Mono", mentre le SAPI4 utilizzano tutte "11 KHz 16 Bit Mono" (default per SAPI4).
- Questi settaggi sono particolarmente importanti quando si effettua una conversione in file Wav o Mp3.



EDITING DEL TESTO:
~~~~~~~~~~~~~~~~~~

- Oltre alle funzioni di editing standard (find, replace, cut etc.) è integrata una funzione particolare, la "Remove Inappropriate Return Carriages". Essa serve ad eliminare tutti i ritorni a capo inutili presenti nel testo che potrebbero limitare la fluidità della lettura da parte delle voci artificiali. Infatti, spesso capita che un testo, per ragioni di impaginatura, contenga una serie di ritorni a capo che andrebbero ad impattare negativamente nella qualità di lettura da parte del TTS.



CONVERSIONE DEL TESTO IN FILE WAV O MP3:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- E' possibile utilizzare DSpeech per la conversione del testo in un file Wav o Mp3. Se si sceglie il formato mp3, viene data la possibilità di specificare le caratteristiche della compressione; essa può essere settata in modo da privilegiare le dimensioni, la qualità audio del file prodotto, oppure in modo da ottenere una cosa bilanciata.



CREAZIONE DI AUDIOLIBRI:
~~~~~~~~~~~~~~~~~~~~~~~~

- Volendo, si può di suddividere il testo in più file di tot minuti ciascuno. E' anche possibile utilizzare la suddivisione manuale del testo in files. In questo caso, è necessario inserire la KeyWord #BREAK ogni volta che si vuol cambiare file.
- Tramite la voce di menu "Append" è possibile unire più files di testo uno dietro all'altro. Tra l'uno e l'altro verrà inserita automaticamente la KeyWord #BREAK in modo da consentire la suddivisione del testo in files separati.
- E' possibile inserire un silenzio di 300 msec all'inizio ed alla fine di ogni file creato, in modo da mantenere la compatibilità con i lettori CD o mp3 più vecchi.
- Se si suddivide il testo in più volumi, all'inizio di ognuno viene inserito il titolo e il numero del volume. E' possibile scegliere di invertire ciò in modo che venga pronunciato prima il numero del volume e poi il titolo (ciò rende più agevole il ritrovamento di uno specifico volume tra tanti.
- E' possibile specificare se si vuole che il programma, prima della conversione, rimuova tutte le andate a capo inappropriate dovute ad un'errata formattazione del testo. Ciò può essere molto utile per aumentare la fluidità di alcuni testi formattati male.



CONVERSAZIONE CON L'IA:
~~~~~~~~~~~~~~~~~~~~~~~

Attivando la funzione "Enable IA reply when press Enter" si può avere l'illusione (più o meno) di conversare con un altro essere umano. Ogni volta che si preme INVIO la frase verrà analizzata e D-Speech risponderà con una frase adeguata.
Di default è installata solo una personalità virtuale in italiano (Selena) che richiede quindi una voce femminile italiana per essere usata, ma il programma è in grado di utilizzarne anche delle altre (se mai verranno realizzate).
In verità non si può parlare di una vera e propria intelligenza artificiale dato che il "core" dell'algoritmo si basa sul "pattern matching", ciononostante, questa tecnica è attualmente quella che dà i migliori risultati in termini di realismo delle risposte. Il database con le frasi-modello (che corrisponde al file SELENA.IA) è, in parte, derivato da un vecchio programma open-source (Babbea) nato a sua volta per prendere in giro un altro programma di IA (Eloisa) che veniva, a suo tempo, spacciato per programma pensante.
In ogni caso il file è modificabile a piacimento.



RICONOSCIMENTO VOCALE:
~~~~~~~~~~~~~~~~~~~~~~

Premendo il pulsante "Start ASR" si attiva il riconoscimento vocale. DSpeech cercherà di riconoscere le frasi che vengono pronunciate al microfono. Se si attiva la funzione "Enable IA reply when press Enter" si potrà conversare in tempo reale con la personalità virtuale.
Tramite un'apposita voce di menu è possibile selezionare e specificare l'engine di riconoscimento vocale da utilizzare. Purtroppo l'unico engine gratuito, ad oggi, è il "MS English Recognizer" che è solo in inglese, per cui, se si vuole utilizzare altri linguaggi, o ci si rivolge a prodotti di terze parti o si aspetta la versione microsoft (che dicono sia in lavorazione).



FORMATI DI FILE DI TESTO SUPPORTATI:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sono supportati i seguenti tipi di file testuali:

- TXT (File testuali semplici sia in formato ANSI che UNICODE).
- RTF
- HTM, HTML
- PDF (Richiede sia installato il "DSpeech PDF Plug-In").
- DOC (File prodotti con MS Word, per utilizzarli è necessario che Word sia installato).



CONFIGURAZIONE MINIMA:
~~~~~~~~~~~~~~~~~~~~~~

- Windows XP non ha bisogno che venga installato nessun pacchetto software aggiuntivo relativo al TTS visto che include già le librerie SAPI5.

- Su Windows NT/2000, invece, bisogna installare il pacchetto MS-SAPI5.1 (6MB) scaricabile da uno dei seguenti link: 

http://aldostools.mysite4now.com/sapi51.msi
http://www.mbsoft.biz/download/sapi51.exe
http://www.arlington.com.au/sapi51.msi

- Su Windows NT/2000/XP/2003, se si vuole utilizzare anche le funzioni di riconoscimento vocale, bisogna installare almeno un engine ASR. La microsoft ne mette a disposizione uno gratuito (per ora soltanto in inglese) che può essere installato scaricando, dal sito Microsoft, l'intero pacchetto SAPI 5.1 SDK (60MB) che lo comprende, oppure (scelta consigliata) scaricando il solo engine (30MB) da questo link: 

http://clans.gameclubcentral.com/shoot/SR.zip

DSpeech richiede una risoluzione di almeno 1024x768.
DSpeech non è testato su sistemi Windows 9x.



LE VOCI:
~~~~~~~~

Le voci si dividono in due categorie:

1. SAPI4 compatibili (queste voci sono più primitive ma si trovano facilmente e, in genere, sono gratuite).
2. SAPI5 compatibili (queste voci invece sono molto più elevate qualitativamente, ma di gratuito si trova poco).

- Windows XP integra già SAPI5 + una voce di qualità molto bassa (Microsoft SAM).
Se si vuole utilizzare anche le voci SAPI4 è necessario installare SAPI4, scaricabile da qui:

http://activex.microsoft.com/activex/controls/sapi/spchapi.exe

- Windows NT/2000, al contrario, integra solo il supporto SAPI4, per cui, se si vuole utilizzare le voci SAPI5, è necessario installare SAPI5, scaricabile da uno dei seguenti link.

http://aldostools.mysite4now.com/sapi51.msi
http://www.mbsoft.biz/download/sapi51.exe
http://www.arlington.com.au/sapi51.msi


- E' possibile scaricare delle voci SAPI5 gratuite ai seguenti link:

RealSpeak: Sembra che queste buone voci saranno integrate di default in Windows Vista.
Italiano
http://download.microsoft.com/download/1/2/2/12246417-CD66-4541-B32B-8CD18E92AAE7/RSSolo4Italian.zip
Spagnolo
http://download.microsoft.com/download/1/2/2/12246417-CD66-4541-B32B-8CD18E92AAE7/RSSolo4Spanish.zip
Francese
http://download.microsoft.com/download/1/2/2/12246417-CD66-4541-B32B-8CD18E92AAE7/RSSolo4French.zip
Tedesco
http://download.microsoft.com/download/1/2/2/12246417-CD66-4541-B32B-8CD18E92AAE7/RSSolo4German.zip


- E' possibile scaricare delle voci SAPI4 gratuite ai seguenti link:

Lernout & Hauspie (L&H): queste voci hanno una relativa buona qualità, ma sono lentissime nella conversione in wav o mp3.
Italiano
http://activex.microsoft.com/activex/controls/agent2/lhttsiti.exe
Francese
http://activex.microsoft.com/activex/controls/agent2/lhttsfrf.exe
Tedesco
http://activex.microsoft.com/activex/controls/agent2/lhttsged.exe
Giapponese
http://activex.microsoft.com/activex/controls/agent2/lhttsjpj.exe
Russo
http://activex.microsoft.com/activex/controls/agent2/lhttsrur.exe
Spagnolo
http://activex.microsoft.com/activex/controls/agent2/lhttsspe.exe


Queste voci, sono sicuramente migliori di SAM, ma la loro qualità è veramente scarsa se confrontata con voci SAPI5 di terze parti (la differenza è abissale). Le migliori purtroppo sono a pagamento e, a volte, non è nemmeno facile procurarsele in maniera legale. In ogni caso, al top della categoria troviamo le voci dei segenti produttori:

Acapela (Voci chiare e intelligibili, ma non il massimo in termini di naturalezza).
Cepstral (Sono quelle con il miglior rapporto prezzo/prestazioni, la qualità non è agli stessi livelli delle voci più costose, ma rimangono comunque valide).
Loquendo (Probabilmente le migliori, soprattutto in termini di naturalezza ed espressività, costano anche tanto).
RealSpeak (Sicuramente ottime).
VoiceWare (Anche queste non sono affatto male, ma si trovano in poche lingue).



SISTEMA DI SCRIPT E RICONOSCIMENTO VOCALE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DSpeech supporta un sistema di riconoscimento vocale che, unito ad un semplice sistema di script, lo rende in grado di creare dialoghi interattivi con l'utente del tipo:
UTENTE: "Computer"
PC: "Computer pronto, chi sei?"
UTENTE: "Dimio"
PC: "Benvenuto allora"
Etc.

Il sistema di script è molto simile al BASIC, per ora sono supportate le seguenti KeyWords:


#VOICE NomeVoce
#DO
#EXIT DO
#LOOP
#RECOGNIZE Parola1, [Parola2], [OTHER_WORDS]...
#RECOGNIZE_WITH_TIMEOUT Secondi, Parola1, [Parola2], [OTHER_WORDS]...
#IF RECOGNIZED Parola1, [Parola2], [OTHER_WORDS]...
#IF TIMEOUT
#END IF
#CALL NomeSub
#SUB NomeSub
#END SUB
#RANDOM
#CASE
#END RANDOM
#EXECUTE PathFileOProgramma
#OPEN FileToSpeech.txt
#STOP
#BREAK
#PLAY FileName.wav
#WAIT nSecondi
#CLOSE


Nel menu contestuale (right-click) è possibile trovare tutte queste KEYWORDS con relativi ESEMPI.
Non sto a spiegare la sintassi visto che la si può dedurre in maniera molto più intuitiva dagli esempi stessi.
In ogni caso, un esempio di script per il riconoscimento vocale potrebbe essere il seguente:


#VOICE Marco
Io sono Angelus, il computer di Dimitri. Tu chi sei?
#DO
	#RECOGNIZE Dimitri, Gloria, OTHER_WORDS
	#IF RECOGNIZED Dimitri
		Angelus in attesa di istruzioni.
		#EXIT DO
	#END IF	
	#IF RECOGNIZED Gloria
		Hai sbagliato computer, il tuo è quello di fianco.
		#EXIT DO
	#END IF	
	#IF RECOGNIZED OTHER_WORDS
		#RANDOM
		#CASE
			Puoi ripetere per favore? Non ho capito il tuo nome.
		#CASE
			Cos'hai detto? Puoi Ripetere?
		#CASE
			Non ho capito quello che hai detto, forse, semplicemente, il tuo nome non lo conosco.
		#END RANDOM
	#END IF	
#LOOP

Purtroppo il sistema di riconoscimento, per ora, si basa unicamente sulla fonetica inglese, per cui, per far riconoscere alcune parole, può essere necessario adattarle alla pronuncia inglese. Ad esempio, per far riconoscere al computer la parola "Russia" bisogna scrivere "Rassya".



SHORTCUTS:
~~~~~~~~~~

Tutte le funzioni dell'interfaccia solo associate a degli shortcut di tastiera, sono inoltre supportati i seguenti tasti speciali:

  F1 = Vai alla casella di editing
  F4 = Pause/Resume
  F5 = Speak/Stop
  F6 o ALT + UP = Speak Previous Line
  F7 o ALT + LEFT = Speak Current Line
  F8 o ALT + DOWN = Speak Next Line
  F9 o ALT + RIGHT = Speak From Cursor
  F11 = Passa alla voce precedente
  F12 = Passa alla voce successiva
  F11+SHIFT = Passa alla prima voce della lista.
  F12+SHIFT = Passa all'ultima voce della lista.

  ESC = Stop
  ALT+1 = Aumenta il volume
  ALT+2 = Diminuisce il volume
  ALT+3 = Aumenta la velocità
  ALT+4 = Diminuisce la velocità
  ALT+5 = Aumenta il pitch
  ALT+6 = Diminuisce il pitch



LINEA DI COMANDO:
~~~~~~~~~~~~~~~~~

E' possibile specificare un nome di file da aprire e riprodurre automaticamente. Questo permette, ad esempio, di eseguire in maniera automatica uno script.

SINTASSI:

- Per aprire un file di testo:

DSpeech.exe FileToSpeech.txt

- Per avviare la riproduzione di un file: 

DSpeech.exe /Play FileToSpeech.txt

- Per convertire un file di testo in un file mp3: 

DSpeech.exe /mp3 origine.txt [destinazione.mp3]

- Per convertire un file di testo in un file wav: 

DSpeech.exe /wav origine.txt [destinazione.wav]

- Per convertire un file di testo in un file mp3 senza mostrare l'interfaccia grafica o l'icona: 

DSpeech.exe /mp3 /hidden origine.txt [destinazione.mp3]



CONVERSIONI MULTIPLE (BATCH):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Le conversioni multiple possono essere ottenute in due modi:

1. Tramite la voce di menu "Batch Conversion..."

2. Tramite la creazione di un file Batch che contenga i comandi di conversione dei files che si vogliono convertire.
Ad esempio, l'esecuzione del seguente file batch:

DSpeech.exe /mp3 File1.txt
DSpeech.exe /mp3 File2.txt

Determina la creazione dei file "File1.mp3" e "File2.mp3" risultato della conversione dei due files di origine.



Note:
~~~~~

- Quando si inserisce un file mp3 nel testo, specie se di grosse dimensioni, può essere avvertita una piccola pausa tra la riproduzione della linea precedente e la riproduzione del file audio, ciò è normale e non costituisce un difetto, in ogni caso, quando si va a salvare il risultato sotto forma di file wav o mp3, la pausa scompare completamente.
- Per la compressione in mp3 viene utilizzato il codec Lame (www.mp3dev.org), esso corrisponde al file "Lame.exe" incluso nel pacchetto.



PROGRAMMATORI:
~~~~~~~~~~~~~~

Dimitrios Coutsoumbas (Dimio)
SKYPE  : katafratto
ICQ    : 145633952
E-MAIL : cyberdimio@gmail.com
HOME   : http://dimio.altervista.org/



BETA-TESTERS:
~~~~~~~~~~~~~

Talksina (talksina@gmail.com)